/*
 * @author Javier A. Ramírez M.
 * jaramirez85@yahoo.es
 */

package com.jav.per;

import com.jav.inter.Constantes;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
//DETALLE.TXT
public class PersisProducto implements Constantes{
    private int numero;
    private String prod;
    private final int INVENT = 0;
    private long cantidad;
    private long cambios;
    private String proveedor;

    private final String CALID = "0";
    private final String SUGER = "0";
    private final String RUTERO = "1";

    public String toString(){

        StringBuffer st = new StringBuffer();
        /*st.append(COMI+StringUtils.lpad(Integer.toString(getNumero()),'0',7)+COMI+SEPA+
                COMI+StringUtils.rpad(getProd(),' ',14)+COMI+SEPA+
                COMI+StringUtils.lpad(Integer.toString(INVENT),'0',10)+COMI+SEPA+
                COMI+StringUtils.lpad(Long.toString(getCantidad()),'0',10)+COMI+SEPA+
                COMI+StringUtils.lpad(Long.toString(getCambios()),'0',10)+COMI);
         *
         */
        st.append(COMI+Integer.toString(getNumero())+COMI+SEPA+
                COMI+getProd()+COMI+SEPA+
                COMI+Integer.toString(INVENT)+COMI+SEPA+
                COMI+Long.toString(getCantidad())+COMI+SEPA+
                COMI+Long.toString(getCambios())+COMI+SEPA+
                COMI+CALID+COMI+SEPA+
                COMI+SUGER+COMI+SEPA+
                COMI+RUTERO+COMI);

        return st.toString();
    }
    
    public String toStringWeb(){

        StringBuffer st = new StringBuffer();
        st.append(getNumero()).append(SEPA2)
                .append(getProd()).append(SEPA2)
                .append(Long.toString(getCantidad())).append(SEPA2)
                .append(Long.toString(getCambios())).append(SEPA2+";");

        return st.toString();
    }

    public long getCambios() {
        return cambios;
    }

    public void setCambios(long cambios) {
        this.cambios = cambios;
    }

    public long getCantidad() {
        return cantidad;
    }

    public void setCantidad(long cantidad) {
        this.cantidad = cantidad;
    }

    public int getNumero() {
        return numero;
    }

    public void setNumero(int numero) {
        this.numero = numero;
    }

    public String getProd() {
        return prod;
    }

    public void setProd(String prod) {
        this.prod = prod;
    }

    public String getProveedor() {
        return proveedor;
    }

    public void setProveedor(String proveedor) {
        this.proveedor = proveedor;
    }

   public byte[] persist() throws IOException {
        ByteArrayOutputStream bout = new ByteArrayOutputStream();
        DataOutputStream dout = new DataOutputStream(bout);
        try{
            dout.writeInt(getNumero());
            dout.writeUTF(getProd());            
            dout.writeLong(getCantidad());
            dout.writeLong(getCambios());
            dout.writeUTF(getProveedor());
            dout.flush();
        }
        finally{
            if(dout!= null){
                 dout.close();
            }
            if(bout!= null){
                 bout.close();
            }
        }
        return bout.toByteArray();

    }

    public void resurrect(byte[] by) throws IOException {
        ByteArrayInputStream bin = new ByteArrayInputStream(by);
        DataInputStream din = new DataInputStream(bin);
        setNumero(din.readInt());
        setProd(din.readUTF());
        setCantidad(din.readLong());
        setCambios(din.readLong());
        setProveedor(din.readUTF());
        bin.close();
        din.close();
    }


}
